#ifndef UTIL_H
#define UTIL_H
#include<iostream>

// QT
#include<QtCore>
#include<QtDebug>

#include <model/Clazz.h>

//using namespace std;


QMap<QString,Clazz*>* parse(const char* filename, char* errorMsg);

/*enum access_specifier {
	PRIVATE, PROTECTED, PUBLIC
};*/

/*
 * Struktura opisujaca pole w klasie
 */
/*struct instance_var {
	// nazwa zmiennej
	QString varname;
	// nazwa jej typu
	QString tname;
};*/

/*
 * Drzewo sklada sie z wezlow tego typu
 */
/*struct class_node {
	// klasy nadrzedne
	list<string>* parents;
	// klasy 'podrzedne'
	list<string>* children;


	// pola
	list<instance_var>* private_fields;
	list<instance_var>* public_fields;
	list<instance_var>* protected_fields;

	class_node() {
		public_fields = 0;
		protected_fields = 0;
		private_fields = 0;
	}
	
	~class_node() {
		delete parents;
		delete children;
		delete private_fields;
		delete public_fields;
		delete protected_fields;
	}
};*/

/*
 * Funkcje pomocnicze
 */

/*void display_list(list<string> & l);
void display_class(const string &class_name, class_node* node);
void display_fields(const string& name);*/
//void display_recursive(const string & name, int depth = 0);
#endif
